package io.xiaojl.xj2ee.common.kit.security.impl;

import java.security.MessageDigest;

import io.xiaojl.xj2ee.common.kit.security.HexUtil;
import io.xiaojl.xj2ee.common.kit.security.IEncrypt;

/**  
 * <p>Title: MD5Encrypt</p>  
 *
 * <p>Description: MD5加解密实现类</p>  
 *
 * @author jilong.xiao  
 * @date 2018年5月23日  
 */
public class MD5Encrypt implements IEncrypt {

	@Override
	public String encrypt(String string) {
		String md5str = "";
        string += "hengtian"; // 加盐
        try {
            // 1 创建一个提供信息摘要算法的对象，初始化为md5算法对象
            MessageDigest md = MessageDigest.getInstance("MD5");

            // 2 将消息变成byte数组
            byte[] input = string.getBytes();

            // 3 计算后获得字节数组,这就是那128位了
            byte[] buff = md.digest(input);

            // 4 把数组每一字节（一个字节占八位）换成16进制连成md5字符串
            md5str = HexUtil.bytes2Hex(buff);

        } catch (Exception e) {
        	throw new RuntimeException("MD5进行加密出现异常",e);
        }
        return md5str;
	}

	@Override
	public String decrypt(String string) {
		throw new RuntimeException("MD5加密的密文，无法解密");
	}

}
